#  This file is part of codeogre
#  Copyright (C) 2009 Johan Jordaan (www.johanjordaan.co.za)
#
#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.

import sys
sys.path.append('../../..')

from codeogre.tokeniser import *
import string

line_count = 1
def count():
  global line_count
  line_count += 1
  
 
if len(sys.argv)<2:
  print 'Usage : lc.py <filename>'
  exit()
else:
  input = open(sys.argv[1]).read()

# This fuction strips the starting {{ and trailing }} of the matched element
#
def replacer(tokeniser):
  tokeniser.current_match = tokeniser.current_match.replace('{{','').replace('}}','').strip()
  return True

  
tokens = tokenise(input,[
                          ['TEMPLATE_VALUE','{{.*?}}',lambda t:replacer(t)],
                        ]
                 )

values1 = { 'name':'Johan','site':'codeogre' }  
result1 = string.join([t.text if t.name != 'TEMPLATE_VALUE' else values1[t.text] for t in tokens],'')
values2 = { 'name':'Lorraine','site':'The Best Site' }  
result2 = string.join([t.text if t.name != 'TEMPLATE_VALUE' else values2[t.text] for t in tokens],'')

print '-'*70,'[Input]'      
print input
print '-'*70,'[Values]'      
print values1
print '-'*70,'[Results]'      
print result1
print '-'*70,'[Values]'      
print values2
print '-'*70,'[Results]'      
print result2
print '-'*70
